An embedded system is an example of a specialized computer system which may be part of a larger system or machine. Embedded systems usually have limited resources such as memory and processing capability and are programmed with software to carry out one or a limited number of tasks. The software is typically written in low-level languages like C/C++ or domain-specific languages. Programming in these languages requires a specialized skill set. One example of an embedded system is a sensor node. A sensor node has one or more sensors which is/are capable of gathering information about the sensor node's environment. A sensor node may perform basic processing of this information or may supply the information to another computing device which may have greater processing capabilities.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known embedded system application programming techniques.